package com.zone.trigger.api;

import com.zone.trigger.api.dto.*;
import com.zone.types.model.Response;

import java.util.List;

/**
 * @author: zongzi
 * @description: 抽奖服务接口
 * @date: 2024/6/17
 */
public interface IRaffleStrategyService {

    /**
     * 装配策略到缓存
     *
     * @param strategyId 策略id
     * @return true/false
     */
    Response<Boolean> assembleStrategy(Long strategyId);

    /**
     * 查询奖品列表
     *
     * @param queryDTO 入参
     * @return 奖品列表
     */
    Response<List<StrategyAwardDTO>> queryStrategyAwardList(StrategyAwardQueryDTO queryDTO);

    /**
     * 查询奖品列表（根据活动查询）
     *
     * @param queryDTO 入参
     * @return 奖品列表
     */
    Response<List<StrategyAwardDTO>> queryActivityRaffleAwardList(StrategyAwardActivityQueryDTO queryDTO);

    /**
     * 抽奖
     *
     * @param requestDTO 抽奖入参
     * @return 抽奖奖品信息
     */
    Response<RaffleResponseDTO> raffle(RaffleRequestDTO requestDTO);
}
